-- Lua Battle System - 主入口文件

-- Lua Battle System - 主入口文件

-- 引入模块
local Logger = require("utils.logger")
local ConfigLoader = require("utils.config_loader")
local BattleManager = require("battle.battle_manager")
local EventSystem = require("utils.event_system")
local ErrorHandler = require("utils.error_handler")
local Errors = require("utils.errors")

-- 初始化日志
Logger.init()
Logger.info("Lua Battle System 初始化中...")

-- 战斗系统主模块
local LuaBattleSystem = {
    version = "0.1.0",
    battle_manager = nil,
    event_system = nil,
    error_handler = nil
}

-- 初始化战斗系统
function LuaBattleSystem:init()
    Logger.info("初始化战斗系统...")
    
    -- 初始化错误处理
    self.error_handler = ErrorHandler:new()
    
    -- 初始化事件系统
    self.event_system = EventSystem:new()
    
    -- 初始化战斗管理器
    self.battle_manager = BattleManager:new()
    
    Logger.info("战斗系统初始化完成")
end

-- 启动战斗
function LuaBattleSystem:start_battle(team1, team2)
    Logger.info("开始战斗...")
    if not self.battle_manager then
        Logger.error("战斗系统未初始化")
        return false
    end
    
    return self.battle_manager:start_battle(team1, team2)
end

-- 运行战斗回合
function LuaBattleSystem:run_turn(battle_id)
    if not self.battle_manager then
        Logger.error("战斗系统未初始化")
        return false
    end
    
    return self.battle_manager:run_turn(battle_id)
end

-- 获取战斗状态
function LuaBattleSystem:get_battle_state(battle_id)
    if not self.battle_manager then
        Logger.error("战斗系统未初始化")
        return nil
    end
    
    return self.battle_manager:get_battle_state(battle_id)
end

-- 主函数
function main()
    local battle_system = LuaBattleSystem
    battle_system:init()
    
    Logger.info("Lua Battle System 启动完成")
    Logger.info("版本: " .. battle_system.version)
    
    return battle_system
end

-- 导出模块
return main()